package com.chenjun.common.base;

import java.util.List;

import com.chenjun.common.model.DataGridModel;

/***
 * 
 * @Description: 基础Servcie
 * @author yanjinyin
 * @date 2017年7月15日 下午11:32:32
 */
public interface IBaseService<T> {
	/**
	 * @Description: 根据主键值获取对象
	 * @param id 主健id
	 * @return
	 * @author yanjinyin
	 * @date 2017年7月15日 下午11:31:56
	 */
	public T get(String id);

	/**
	 * 
	 * 
	 * @author 李伟
	 * @date 2015年7月3日 上午11:29:37
	 * @param obj
	 * @return
	 */
	public int create(T record);

	/**
	 * 删除对象
	 * 
	 * @author 李伟
	 * @date 2015年7月3日 上午11:29:21
	 * @param id
	 * @return
	 */
	public int delete(String id);

	/**
	 * 更新指定对象
	 * 
	 * @author 李伟
	 * @date 2015年7月3日 上午11:29:58
	 * @param obj
	 * @return
	 */
	public int update(T record);

	/**
	 * 创建或者更新对象
	 * @author 李伟
	 * @date 2015年7月3日 上午11:32:05
	 * @param record
	 * @return
	 */
	public int createOrUpdate(T record);

	/**
	 * 根据参数获取记录数量
	 * 
	 * @param params
	 * @return int
	 */
	public int doCountByCondition(DataGridModel param);

	/**
	 * 根据参数获取数据记录
	 * 
	 * @param params
	 * @return List<T>
	 */
	public List<T> doListByCondition(DataGridModel param);

	/**
	 * 根据条件获取分页集合
	 * 
	 * @param param
	 * @return Map<String,Object>
	 */
	public Object doPagination(DataGridModel param);
}
